package com.indusfo.spc.mapper;

import com.indusfo.spc.pojo.Mat;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author: louk
 * @Description:物料信息mapper
 * @date: 2019/11/18 9:47
 */

public interface MatMapper {
    /**
     * 新增
     *
     * @param record
     * @return
     */
    int insertSelective(Mat record);
    //修改

    /**
     * 更新
     *
     * @param record
     * @return
     */
    int updateByPrimaryKeySelective(Mat record);

    /**
     * 删除启用停用
     *
     * @param matIds
     * @param dataState
     * @return
     */
    int defineMat(@Param("matIds") Integer[] matIds, @Param("dataState") Integer dataState);

    /**
     * 查询
     *
     * @param record
     * @return
     */
    List<Mat> selectAllMat(Mat record);
    //总数

    /**
     * 总数
     *
     * @param record
     * @return
     */
    int countMat(Mat record);
    //查重

    /**
     * 去重
     *
     * @param record
     * @return
     */
    int countParamsNotRepeat(Mat record);


    //

    /**
     * 通过物料类型ID删除物料信息
     *
     * @param matTypeIds
     * @return
     */
    Integer deleteBymatTypeIds(@Param("matTypeIds") Integer[] matTypeIds);
    //

    /**
     * 判断物料编号是否重复
     *
     * @param mat
     * @return
     */
    int countCodeNoRepeat(Mat mat);

    /**
     * 判断物料名称是否重复
     *
     * @param mat
     * @return
     */
    int countNameNoRepeat(Mat mat);

    /**
     * 通过物料类别查询物料信息
     *
     * @param matTypeIds
     * @return
     */
    int ListMatByMatTypeId(@Param("matTypeIds") Integer[] matTypeIds);

    /**
     * 高级查询
     *
     * @param materialXO
     * @return
     */
    List<Mat> advancedQuery(Mat materialXO);

    /**
     * 高级查询计数
     *
     * @param materialXO
     * @return
     */
    int countAdvancedQuery(Mat materialXO);

    List<Mat> queryListMatToInsert(Mat mat);

    Integer countMatToInsert(Mat mat);

    List<Mat> queryListMatToInsertend(Mat mat);

    Integer countMatToInsertend(Mat mat);

    List<Mat> testQuery();
    int countTestQuery();

}